package structuralModel.combinationModel;

/**
 * 功能描述:  抽象层, 可以是接口, 可以是抽象类  :
 *  树形的组织结构
 * 2024/02/09
 * <p>
 * ZhangYi
 */
public abstract class CombinationCompoent {
    // 名称
    private String name;
    // 描述信息
    private String desc;

    public CombinationCompoent(String name,
                               String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    /**
     * 功能描述: 添加元素
     * 叶子节点不实现该方法
     */
    protected  void addElement(CombinationCompoent e){
        throw new UnsupportedOperationException("该方法未实现");
    };

    /**
     * 功能描述: 删除元素
     * 叶子节点不实现该方法
     */
    protected  void removeElement(CombinationCompoent e){
        throw new UnsupportedOperationException("该方法未实现");
    };


    /**
     * 功能描述: 查询所有元素
     * 叶子节点实现该方法
     */
    public abstract void queryAll();
}
